<?php

/**
 * php 数据类型
 */

$a = 1; // int类型
$b = 'str'; // string类型
$f = 1.234; // float类型
$bool = true; // bool类型

$arr = ['a', 'b', 'c'];  // 数组类型
$obj = new class{}; // 对象类型


// 类型转换

// string -> int
$s = '12';
echo $foo = (int) $s; // 非数字类型 转换int 结果默认0
echo PHP_EOL;

// int -> string
$i = 100;
echo $foo = (string) $i;
echo PHP_EOL;

// int -> float
echo $foo = (float) $i;
echo PHP_EOL;
// float -> int 精度会丢失
$f = 3.14159;
echo $foo = (int) $f; // 3
echo PHP_EOL;

// int -> bool
$i = 234;
echo $foo = (bool) $i; // 1
echo PHP_EOL;

// string -> bool
$s = 'string';
echo $foo = (bool) $s; // 1
echo PHP_EOL;

// string -> binary
echo $foo = (binary) $s; // string
echo PHP_EOL;
echo $foo = (binary) $i;// 234
echo PHP_EOL;

// string -> array
$a = 1;
$foo = (array) $a;// ['0' => 1]
//var_dump($foo);
echo PHP_EOL;

// array -> object
$foo = (object) $foo;
//var_dump($foo);
echo PHP_EOL;

// object -> array
$obj = new \stdClass;
$foo = (array) $obj;
//var_dump($foo);


